types.hpp
namespace type_safe
{
inline namespace types
{
using int8_t = integer<int8_t>;
using int16_t = integer<int16_t>;
using int32_t = integer<int32_t>;
using int64_t = integer<int64_t>;
using uint8_t = integer<uint8_t>;
using uint16_t = integer<uint16_t>;
using uint32_t = integer<uint32_t>;
using uint64_t = integer<uint64_t>;
inline namespace literals
{
template <char ... Digits>
constexpr int8_t operator""_i8();
template <char ... Digits>
constexpr int16_t operator""_i16();
template <char ... Digits>
constexpr int32_t operator""_i32();
template <char ... Digits>
constexpr int64_t operator""_i64();
template <char ... Digits>
constexpr uint8_t operator""_u8();
template <char ... Digits>
constexpr uint16_t operator""_u16();
template <char ... Digits>
constexpr uint32_t operator""_u32();
template <char ... Digits>
constexpr uint64_t operator""_u64();
}
using int_fast8_t = integer<int_fast8_t>;
using int_fast16_t = integer<int_fast16_t>;
using int_fast32_t = integer<int_fast32_t>;
using int_fast64_t = integer<int_fast64_t>;
using uint_fast8_t = integer<uint_fast8_t>;
using uint_fast16_t = integer<uint_fast16_t>;
using uint_fast32_t = integer<uint_fast32_t>;
using uint_fast64_t = integer<uint_fast64_t>;
using int_least8_t = integer<int_least8_t>;
using int_least16_t = integer<int_least16_t>;
using int_least32_t = integer<int_least32_t>;
using int_least64_t = integer<int_least64_t>;
using uint_least8_t = integer<uint_least8_t>;
using uint_least16_t = integer<uint_least16_t>;
using uint_least32_t = integer<uint_least32_t>;
using uint_least64_t = integer<uint_least64_t>;
using intmax_t = integer<intmax_t>;
using uintmax_t = integer<uintmax_t>;
using intptr_t = integer<intptr_t>;
using uintptr_t = integer<uintptr_t>;
using ptrdiff_t = integer<ptrdiff_t>;
using size_t = integer<size_t>;
using int_t = integer<int>;
using unsigned_t = integer<unsigned>;
inline namespace literals
{
template <char ... Digits>
constexpr ptrdiff_t operator""_isize();
template <char ... Digits>
constexpr size_t operator""_usize();
template <char ... Digits>
constexpr int_t operator""_i();
template <char ... Digits>
constexpr unsigned_t operator""_u();
}
using float_t = floating_point<std::float_t>;
using double_t = floating_point<std::double_t>;
inline namespace literals
{
constexpr float_t operator""_f(long double val);
constexpr double_t operator""_d(long double val);
}
using bool_t = boolean;
}
}